﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Model;
using BL;

namespace DokterAfspraken.PatientPages
{
    public partial class PatientAfspraakAanmaak : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            DataModelManager db = new DataModelManager();
            string Datum = Request.QueryString["datum"];
            string Uur = Request.QueryString["uur"];
            string ArtsID = Request.QueryString["ArtsID"];
            Artsen mijnArts = db.getArtsInfo(int.Parse(ArtsID))[0];
            try
            {
                int patientID = int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_patientID"].ToString());
                Patienten mijnPatient = db.getPatientInfo(patientID)[0];

                //patientID gegevens gebruiken voor velden in te vullen
                if (!Page.IsPostBack)
                {
                    if (patientID != 0)
                    {
                        txtVoornaamPatient.Text = mijnPatient.Voornaam;
                        txtAchternaamPatients.Text = mijnPatient.Achternaam;
                        txtHuisnummer.Text = mijnPatient.Huisnummer;
                        txtPostcode.Text = mijnPatient.Postcode;
                        txtGemeente.Text = mijnPatient.Gemeente;
                        txtTelefoon.Text = mijnPatient.Telefoon;
                        txtEmail.Text = mijnPatient.Email;
                        txtStraat.Text = mijnPatient.Straat;
                    }
                }
            }

            catch { }
                //meegegeven info invullen in velden
                txtArts.Text = mijnArts.Voornaam;
                txtUur.Text = Uur;
                txtDatum.Text = Datum;
            
        }

        protected void btnMaaktAfspraak_Click(object sender, EventArgs e)
        {
            DataModelManager db = new DataModelManager();
            Afspraken mijnAfspraak = new Afspraken();
            int ArtsID = int.Parse(Request.QueryString["ArtsID"]);
            Artsen mijnArts = db.getArtsInfo(ArtsID)[0];
           
            //string datum uur -> datetime
            string Datum = Request.QueryString["datum"];
            string Uur = Request.QueryString["Uur"];
            string DatumUur = Datum + " " + Uur;
            DateTime date = DateTime.Parse(DatumUur);

                //als email ingevuld is
            if (txtEmail.Text != "")
            {
                #region mijnAfspraak.patientID
                try
                {
                    mijnAfspraak.PatientID = int.Parse(System.Web.HttpContext.Current.Session["dokterspraktijk_patientID"].ToString());
                }
                catch { }
                #endregion
                mijnAfspraak.ArtsID = ArtsID;
                mijnAfspraak.PraktijkID = db.getPraktijkIDOpArtsID(ArtsID);
                mijnAfspraak.Reden = txtReden.Text;
                mijnAfspraak.Email = txtEmail.Text;
                mijnAfspraak.Naam = txtVoornaamPatient.Text + " " + txtAchternaamPatients.Text;
                mijnAfspraak.Telefoon = txtTelefoon.Text;
                mijnAfspraak.Huisnummer = txtHuisnummer.Text;
                mijnAfspraak.Postcode = txtPostcode.Text;
                mijnAfspraak.Gemeente = txtGemeente.Text;
                mijnAfspraak.Straat = txtStraat.Text;
                mijnAfspraak.DatumUur = date;

                //mail verzenden bij bevestiging
                #region mailBevestiging
                string EmailDokter = db.getArtsInfo(ArtsID)[0].Email;
                string to = txtEmail.Text;
                string from = "DigitaleWachtkamer@gmail.com";
                string subject = "dokterAfspraak:" + txtReden.Text;
                string body = "Uw Afspraak is geboekt op " + Datum + " om " + Uur + " bij " + mijnArts.Voornaam;
                Mailhelper.SendMailMessage(to, from, subject, body);
                #endregion

                //in db Afspraken zetten en nr ExterneSite gaan
                db.insertAfspraken(mijnAfspraak);
                Response.Redirect("http://localhost:3338/PatientPages/ExterneSite.aspx");
            }
            
                //als email niet ingevuld is
            else 
            {
                lblErrorEmail.Text = "Vul in";
            }    
        }
    }
}